#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>

int gval=0;

int main()
{
  
  //1.3 1.4 fork分支
  printf("I am a process,pid:%d,ppid:%d\n",getpid(),getppid());
  pid_t id=fork();
  //验证fork有多个返回值
  if(id>0)
  {
      while(1)
      {
        printf("我是父进程,pid:%d,ppid:%d,ret id:%d,gval:%d\n",getpid(),getppid(),id,gval);
        gval+=10;
        sleep(1);
      }
  }
  else if(id==0)
  {
      while(1)
      {
        printf("我是子进程,pid:%d,ppid:%d,ret id:%d,gval:%d\n",getpid(),getppid(),id,gval);
        gval++;
        sleep(1);
      }
  }
  //通过验证可以发现两个循环都在进行，这是从来不可能发生的情况

  /*


  chdir("/home");
  //加入chdir后发现cwd工作路径改变，需要注意，若要改到根目录下
  //一定要在root权限下操作
  //改变工作路径后，新建的文件就存在新的工作路径中了！
  
  

  //1.1 1.2查看进程信息并打印pid ppid
  FILE *fp = fopen("log.txt","w");
  if(fp==NULL)
  {
     perror("fopen");
     return 1;
  }
  pid_t ppid=getppid();
  pid_t pid=getpid();
  while(1)
  {
    printf("hello bit!I am a process,pid:%d,ppid:%d\n",pid,ppid);
    sleep(1);
  }
  
  //通过访问根目录下的proc文件，找到对应的pid文件
  // ls一下后可以找到cwd路径，即当前工作路径
   
*/

  return 0;
}
